#include "CtrlCfg.h"
#include "CAppCtx.h"
#include "QFileDialog"
#include <QMessageBox>

CtrlCfg::CtrlCfg(QWidget *parent) {
  ui.setupUi(this);
  OnInitWindow();
}

void CtrlCfg::OnInitWindow() {
  ui.leModelPath->setText(CAppCtx::instance()->GetModelPath());
  ui.leFFmpegPath->setText(CAppCtx::instance()->GetFFMpegPath());
  ui.leDevIP->setText(CAppCtx::instance()->GetDevIP());
}

CtrlCfg::~CtrlCfg() {}

void CtrlCfg::SaveCfg() {
  CAppCtx::instance()->SetModelPath(ui.leModelPath->text());
  CAppCtx::instance()->SetFFMpegPath(ui.leFFmpegPath->text());
  CAppCtx::instance()->SetDevIP(ui.leDevIP->text());
}

void CtrlCfg::on_pbBrowseModel_clicked() {
  QString dirName = QFileDialog::getExistingDirectory(
      nullptr, "选择模型文件目录", "C:/",
      QFileDialog::ShowDirsOnly |
          QFileDialog::DontResolveSymlinks // 只显示目录，避免解析符号链接
  );
  if (dirName.isEmpty()) {
    QMessageBox::warning(nullptr,            // 父窗口
                         "选择模型文件目录", // 对话框标题
                         "不能选择空目录!",  // 显示的消息
                         QMessageBox::Ok     // 按钮
    );
    return;
  }
  ui.leModelPath->setText(dirName);
}
void CtrlCfg::on_pbBrowseFFmpeg_clicked() {
  QString fileName = QFileDialog::getOpenFileName(
      nullptr, "选择ffmpeg执行文件地址", "c:/code", "可执行文件 (*.exe)");
  if (fileName.isEmpty()) {
    QMessageBox::warning(nullptr,            // 父窗口
                         "选择ffmpeg执行文件地址", // 对话框标题
                         "不能选择空文件!",  // 显示的消息
                         QMessageBox::Ok     // 按钮
    );
    return;
  }
  ui.leFFmpegPath->setText(fileName);

}